package com.huli.controller;

import com.huli.pojo.SysUser;
import com.huli.service.UserService;
import com.huli.util.Result;
import com.huli.service.SysUserService;
import com.huli.util.Result;
import com.huli.vo.OrganizationUserVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {
    // 注入SysUserService
    @Autowired
    private SysUserService sysUserService;
    @Autowired
    private UserService userService;

    // 查询用户列表
    @RequestMapping("/userList")
    public Result userList(OrganizationUserVo param) {
        try {
            // 调用sysUserService的userList方法查询用户列表
            OrganizationUserVo userList = sysUserService.userList(param);
            // 返回查询结果
            return Result.success(userList);
        } catch (Exception e) {
            // 打印异常信息
            e.printStackTrace();
            // 返回查询失败信息
            return Result.error("查询失败");
        }
    }

    // 删除员工
    @RequestMapping("/deleteUser")
    public Result deleteUser(Long id) {
        try {
            // 调用sysUserService的deleteUser方法删除员工
            sysUserService.deleteUser(id);
            // 返回删除成功信息
            return Result.success("删除成功");
        } catch (Exception e) {
            // 打印异常信息
            e.printStackTrace();
            // 返回删除失败信息
            return Result.error("删除失败");
        }
    }

    // 修改员工信息
    @RequestMapping("/updateUser")
    public Result updateUser(SysUser sysUser) {
        try {
            // 调用sysUserService的updateUser方法修改员工信息
            sysUserService.updateUser(sysUser);
            // 返回修改成功信息
            return Result.success("修改成功");
        } catch (Exception e) {
            // 打印异常信息
            e.printStackTrace();
            // 返回修改失败信息
            return Result.error("修改失败");
        }
    }

    // 修改回显信息
    @RequestMapping("/updateUserById")
    public Result updateUserById(Long id) {
        try {
            // 调用sysUserService的updateUserById方法修改回显信息
            SysUser sysUser = sysUserService.updateUserById(id);
            // 返回修改回显信息
            return Result.success(sysUser);
        } catch (Exception e) {
            // 打印异常信息
            e.printStackTrace();
            // 返回修改失败信息
            return Result.error("修改失败");
        }
    }

    // 新增员工信息
    @RequestMapping("/addUser")
    public Result addUser(SysUser sysUser) {
        try {
            // 调用sysUserService的addUser方法新增员工信息
            sysUserService.addUser(sysUser);
            // 返回新增成功信息
            return Result.success("新增成功");
        } catch (Exception e) {
            // 打印异常信息
            e.printStackTrace();
            // 返回新增失败信息
            return Result.error("新增失败");
        }
    }


        @RequestMapping("/login")
        public Result login(String username) {
            SysUser user = userService.findUserName(username);
            return Result.success("登录成功", user);
        }
        @RequestMapping("/findAll")
        public Result findAll() {
            List<SysUser> userList = userService.findAll();
            return Result.success("查询成功", userList);
        }
}